package org.ruoyi.ppt.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.ruoyi.common.core.validate.AddGroup;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.ppt.domain.SysSourcematerial;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 知识图谱素材业务对象 sys_sourcematerial
 *
 * @author ageerle
 * @date Mon Sep 08 17:25:27 CST 2025
 */
@Data

@AutoMapper(target = SysSourcematerial.class, reverseConvertGenerate = false)
public class SysSourcematerialBo implements Serializable {

    private Long ossId;

    /**
     * 租户编号
     */
    private String tenantId;
    /**
     * 文件名
     */
    @NotBlank(message = "文件名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileName;
    /**
     * 原名
     */
    @NotBlank(message = "原名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String originalName;
    /**
     * 文件后缀名
     */
    @NotBlank(message = "文件后缀名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileSuffix;
    /**
     * URL地址
     */
    @NotBlank(message = "URL地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String url;
    /**
     * 创建部门
     */
    private Long createDept;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 上传人
     */
    private Long createBy;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 更新人
     */
    private Long updateBy;
    /**
     * 服务商
     */
    @NotBlank(message = "服务商不能为空", groups = { AddGroup.class, EditGroup.class })
    private String service;

}
